package com.jvyou.jdbc;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidPooledConnection;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * @author 橘柚
 * @version 1.0-SNAPSHOT
 * @Date 2024/7/18 9:24
 * @Description
 */
public class DruidDemo {

    public static void main(String[] args) throws SQLException {
        // 1. 创建数据源对象
        DruidDataSource dataSource = new DruidDataSource();
        // 2. 配置连接参数(下面参数是数据库连接必须的)
        dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/jvyou-mybatis");
        dataSource.setUsername("root");
        dataSource.setPassword("123456");
        // 3. 配置可选参数
        dataSource.setInitialSize(10); // 初始化连接数量
        dataSource.setMaxActive(20); // 最大连接数量
        // 4. 获取连接，执行查询
        DruidPooledConnection connection = dataSource.getConnection();
        PreparedStatement ps = connection.prepareStatement("select * from user where id = ?");
        ps.setInt(1, 1);
        ResultSet resultSet = ps.executeQuery();
        if (resultSet.next()) {
            System.out.println(resultSet.getString("name"));
            System.out.println(resultSet.getString("age"));
        }
        // 5. 关闭相关资源
        resultSet.close();
        ps.close();
        // 6. 归还连接，这里的close是将用完的连接归还到数据库连接池而不是直接关闭
        connection.close();
        // 7. 关闭数据源
        dataSource.close();

    }

}
